package es.masterd.e12_2;

import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;

import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.RemoteViews;
import android.widget.Toast;

public class ConfigActivity extends Activity implements OnClickListener {

	private SharedPreferences prefs;
	private int mAppWidgetId;
	private DatePicker fechaSel;

	 
	protected void onCreate(Bundle savedInstanceState) { 
	    super.onCreate(savedInstanceState); 
	    setContentView(R.layout.config);
	   
	    prefs = getSharedPreferences("cuentaAtrasPrefs", Activity.MODE_PRIVATE); 
	    
	    
	    Button boton = (Button) findViewById(R.id.Ok);
	    boton.setOnClickListener(this);
	    
	    fechaSel = (DatePicker) findViewById(R.id.Fecha);
	    
	    // Cargamos la fecha guardada en las preferencias
	    String curFech = prefs.getString("pref_cuenta_atras_fecha", "1970-1-1");
	    String[] p = curFech.split("-");
	    int anio = Integer.parseInt(p[0]);
	    int mes = Integer.parseInt(p[1]);
	    int dia = Integer.parseInt(p[2]);
	    
	    fechaSel.init(anio, mes, dia , null);
	
	    
	 // Obtenemos el id del widget que nos llam�
		Intent intent = getIntent();
		Bundle extras = intent.getExtras();
		if (extras != null) {
		    mAppWidgetId = extras.getInt(
		            AppWidgetManager.EXTRA_APPWIDGET_ID, 
		            AppWidgetManager.INVALID_APPWIDGET_ID);
		    
		    Log.d("widget conf", "mAppWidgetId=" + mAppWidgetId);
		}
	    
		// Si el id no es v�lido salimos
		if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
        	Toast.makeText(this, "Widget asociado inv�lido",Toast.LENGTH_LONG);
            finish();
        }

	}


	/**
	 * Al salir se debe refrescar el widget con los nuevos datos
	 */
	
	public void onClick(View v) {
		Log.d("Widget conf","terminando... ");
		
		// Guardamos la fecha en las preferencias
		String fecha = fechaSel.getYear() + "-" + fechaSel.getMonth() + "-" + fechaSel.getDayOfMonth();
		
		Editor editor = prefs.edit();
		editor.putString("pref_cuenta_atras_fecha", fecha);
		editor.commit();
		
		// Obtenemos una instancia del manejador de widgets
		Context context = ConfigActivity.this;
		AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
		
		// Solicitamos que se actualice el widget con los datos
		RemoteViews views =  CuentaAtrasWidget.getRemoteView(context);
		appWidgetManager.updateAppWidget(mAppWidgetId, views);

		// Devolvemos el control a la actividad anterior avisando que todo ha ido ok
		Intent resultValue = new Intent();
		resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
		setResult(RESULT_OK, resultValue);

		finish();
	} 
	
	
}
